#ifndef REPLACEOUTLIERS_H
#define REPLACEOUTLIERS_H

#include <QVector>
#include <QPair>
#include <QString>

class replaceOutliers {
public:
    // 构造函数
    replaceOutliers(const QVector<double>& t, const QVector<double>& y, const QVector<bool>& outliers);

    // 设置替换方法
    void setMethod(const QString& method, int opt1 = -1, int opt2 = -1);

    // 执行替换
    QPair<QVector<double>, QVector<double>> execute();

private:
    QVector<double> t; // 时间数据
    QVector<double> y; // 值数据
    QVector<bool> outliers; // 异常值标记
    QString method; // 替换方法
    int opt1, opt2; // 方法参数

    // 内部方法
    void removeOutliers(QVector<double>& t2, QVector<double>& y2);
    void meanReplacement(QVector<double>& y2);
    void medianReplacement(QVector<double>& y2);
    void splineReplacement(QVector<double>& y2);
};

#endif // REPLACEOUTLIERS_H
